home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
AIncludes
/
OSA.a
< prev
next >
Wrap
Text File
|
1996-05-01
|
56KB
|
1,757 lines
;
; File: OSA.a
;
; Contains: AppleScript Client Interfaces.
;
; Version: Technology: AppleScript 1.1
; Release: Universal Interfaces 3.0d3 on Copland DR1
;
; Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
;
; Bugs?: If you find a problem with this file, send the file and version
; information (from above) and the problem description to:
;
; Internet: apple.bugs@applelink.apple.com
; AppleLink: APPLE.BUGS
;
;
IF &TYPE('__OSA__') = 'UNDEFINED' THEN
__OSA__ SET 1
IF &TYPE('__ERRORS__') = 'UNDEFINED' THEN
include 'Errors.a'
ENDIF
IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
include 'AppleEvents.a'
ENDIF
IF &TYPE('__AEOBJECTS__') = 'UNDEFINED' THEN
include 'AEObjects.a'
ENDIF
IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
include 'Components.a'
ENDIF
IF FOR_SYSTEM7_ONLY THEN
;
;*************************************************************************
; Types and Constants
;*************************************************************************
;
;
; The componenent manager type code for components that
; support the OSA interface defined here.
;
; 0x6f736120
kOSAComponentType EQU 'osa '
; 0x73637074
kOSAGenericScriptingComponentSubtype EQU 'scpt'
; Type of script document files.
; 0x6f736173
kOSAFileType EQU 'osas'
;
; Suite and event code of the RecordedText event.
; (See OSAStartRecording, below.)
;
; 0x61736372
kOSASuite EQU 'ascr'
; 0x72656364
kOSARecordedText EQU 'recd'
; Selector returns boolean
; 0x6d6f6469
kOSAScriptIsModified EQU 'modi'
; Selector returns boolean
; 0x63736372
kOSAScriptIsTypeCompiledScript EQU 'cscr'
; Selector returns boolean
; 0x76616c75
kOSAScriptIsTypeScriptValue EQU 'valu'
; Selector returns boolean
; 0x636e7478
kOSAScriptIsTypeScriptContext EQU 'cntx'
; Selector returns a DescType which may be passed to OSACoerceToDesc
; 0x62657374
kOSAScriptBestType EQU 'best'
;
; This selector is used to determine whether a script has source
; associated with it that when given to OSAGetSource, the call will not
; fail. The selector returns a boolean.
;
; 0x67737263
kOSACanGetSource EQU 'gsrc'
typeOSADialectInfo EQU 'difo' ; 0x6469666f
keyOSADialectName EQU 'dnam' ; 0x646e616d
keyOSADialectCode EQU 'dcod' ; 0x64636f64
keyOSADialectLangCode EQU 'dlcd' ; 0x646c6364
keyOSADialectScriptCode EQU 'dscd' ; 0x64736364
; typedef ComponentResult OSAError
; Under the Open Scripting Architecture all error results are longs
; typedef unsigned long OSAID
;
; OSAIDs allow transparent manipulation of scripts associated with
; various scripting systems.
;
kOSANullScript EQU 0
; No -script constant.
kOSANullMode EQU 0 ; sounds better
kOSAModeNull EQU 0 ; tastes consistent
;
; Some routines take flags that control their execution. This constant
; declares default mode settings are used.
;
;
;*************************************************************************
; Standard Script Errors
;**************************************************************************
; It is recommended that scripting components use the following set of error
; codes to signal failure when applicable. This enables applications that
; use the OSA API to deal with some class of script errors in a less than
; ad hoc manner. Scripting components are of course encouraged to return
; component-specific errors when these don't apply.
;*************************************************************************
;
;
; Dynamic errors:
;
; These errors result from data-dependent conditions and are typically
; signaled at runtime.
;
;
; Signaled when a value can't be coerced to the desired type. Similar
; to errOSATypeError except results from coercion.
;
errOSACantCoerce EQU -1700
; Signaled when an object is not found in a container
errOSACantAccess EQU -1728
;
; Signaled when an object cannot be set in a container. Same as
; AERegistry error errAEWriteDenied.
;
errOSACantAssign EQU -10006
;
; Signaled by user scripts or applications when no actual error code
; is to be returned. Simply means "an error has occurred". Most useful
; in conjunction with an error message from the application.
;
errOSAGeneralError EQU -2700
; Signaled when there is an attempt to divide by zero
errOSADivideByZero EQU -2701
; Signaled when integer or real value is too large to be represented
errOSANumericOverflow EQU -2702
;
; Signaled when application can't be launched or when it is remote and
; program linking is not enabled.
;
errOSACantLaunch EQU -2703
; Signaled when an application can't respond to AppleEvents
errOSAAppNotHighLevelEventAware EQU -2704
; Signaled when an application's terminology resource is not readable
errOSACorruptTerminology EQU -2705
; Signaled when the runtime stack overflows
errOSAStackOverflow EQU -2706
; Signaled when a runtime internal data structure overflows
errOSAInternalTableOverflow EQU -2707
;
; Signaled when an intrinsic limitation is exceeded for the size of
; a value or data structure.
;
errOSADataBlockTooLarge EQU -2708
errOSACantGetTerminology EQU -2709
errOSACantCreate EQU -2710
;
; Component-specific dynamic script errors:
;
; The range -2720 thru -2739 is reserved for component-specific runtime errors.
; (Note that error codes from different scripting components in this range will
; overlap.)
;
;
; Static errors:
;
; These errors comprise what are commonly thought of as parse and compile-
; time errors. However, in a dynamic system (e.g. AppleScript) any or all
; of these may also occur at runtime.
;
; Signaled when data was not the right type and coercion is not allowed
errOSATypeError EQU -1703
; Signaled when a message was sent to an object that didn't handle it
OSAMessageNotUnderstood EQU -1708
;
; Signaled when a function to be returned doesn't exist. (Probably only
; useful in languages with first-class functions that distinguish between
; functions and other values (two name spaces). This is different from
; errOSAMessageNotUnderstood, which may be signaled when the method is
; invoked.
;
OSAUndefinedHandler EQU -1717
; Signaled when a container can never have the requested object
OSAIllegalAccess EQU -1723
; Signaled when index was out of range. Specialization of errOSACantAccess.
OSAIllegalIndex EQU -1719
; Signaled when a range is screwy. Specialization of errOSACantAccess.
OSAIllegalRange EQU -1720
;
; Signaled when an object can never be set in a container. Same as
; AERegistry error errAENotModifiable.
;
OSAIllegalAssign EQU -10003
;
; Signaled when a syntax error occurs. (e.g. "Syntax error" or
; "<this> can't go after <that>").
;
OSASyntaxError EQU -2740
;
; Signaled when another form of syntax was expected. (e.g. "expected
; a <type> but found <this>").
;
OSASyntaxTypeError EQU -2741
; Signaled when a name or number is too long to be parsed
OSATokenTooLong EQU -2742
;
; Signaled when a parameter is missing for a function invocation. Note
; that in some languages, this error may occur at runtime.
;
OSAMissingParameter EQU -1701
;
; Signaled when function is called with the wrong number of parameters,
; or a parameter pattern cannot be matched.
;
OSAParameterMismatch EQU -1721
;
; Signaled when a formal parameter, local variable, or instance variable
; is specified more than once.
;
OSADuplicateParameter EQU -2750
;
; Signaled when a formal parameter, local variable, or instance variable
; is specified more than once.
;
OSADuplicateProperty EQU -2751
;
; Signaled when more than one handler is defined with the same name in
; a scope where the language doesn't allow it.
;
OSADuplicateHandler EQU -2752
; Signaled when a variable is accessed that has no value
OSAUndefinedVariable EQU -2753
;
; Signaled when a variable is declared inconsistently in the same scope,
; such as both local and global.
;
OSAInconsistentDeclarations EQU -2754
;
; Signaled when illegal control flow occurs in an application (no catcher
; for throw, non-lexical loop exit, etc.).
;
OSAControlFlowError EQU -2755
;
; Component-specific static script errors:
;
; The range -2760 thru -2779 is reserved for component-specific parsing and
; compile-time errors. (Note that error codes from different scripting
; components in this range will overlap.)
;
;
; Dialect-specific script errors:
;
; The range -2780 thru -2799 is reserved for dialect specific error codes for
; scripting components that support dialects. (Note that error codes from
; different scripting components in this range will overlap, as well as error
; codes from different dialects in the same scripting component.)
;
;
;*************************************************************************
; OSA Interface Descriptions
;**************************************************************************
; The OSA Interface is broken down into a required interface, and several
; optional interfaces to support additional functionality. A given scripting
; component may choose to support only some of the optional interfaces in
; addition to the basic interface. The OSA Component Flags may be used to
; query the Component Manager to find a scripting component with a particular
; capability, or determine if a particular scripting component supports a
; particular capability.
;*************************************************************************
;
; OSA Component Flags:
kOSASupportsCompiling EQU $0002
kOSASupportsGetSource EQU $0004
kOSASupportsAECoercion EQU $0008
kOSASupportsAESending EQU $0010
kOSASupportsRecording EQU $0020
kOSASupportsConvenience EQU $0040
kOSASupportsDialects EQU $0080
kOSASupportsEventHandling EQU $0100
; Component Selectors:
kOSASelectLoad EQU $0001
kOSASelectStore EQU $0002
kOSASelectExecute EQU $0003
kOSASelectDisplay EQU $0004
kOSASelectScriptError EQU $0005
kOSASelectDispose EQU $0006
kOSASelectSetScriptInfo EQU $0007
kOSASelectGetScriptInfo EQU $0008
kOSASelectSetActiveProc EQU $0009
kOSASelectGetActiveProc EQU $000A
; Compiling:
kOSASelectScriptingComponentName EQU $0102
kOSASelectCompile EQU $0103
kOSASelectCopyID EQU $0104
; GetSource:
kOSASelectGetSource EQU $0201
; AECoercion:
kOSASelectCoerceFromDesc EQU $0301
kOSASelectCoerceToDesc EQU $0302
; AESending:
kOSASelectSetSendProc EQU $0401
kOSASelectGetSendProc EQU $0402
kOSASelectSetCreateProc EQU $0403
kOSASelectGetCreateProc EQU $0404
kOSASelectSetDefaultTarget EQU $0405
; Recording:
kOSASelectStartRecording EQU $0501
kOSASelectStopRecording EQU $0502
; Convenience:
kOSASelectLoadExecute EQU $0601
kOSASelectCompileExecute EQU $0602
kOSASelectDoScript EQU $0603
; Dialects:
kOSASelectSetCurrentDialect EQU $0701
kOSASelectGetCurrentDialect EQU $0702
kOSASelectAvailableDialects EQU $0703
kOSASelectGetDialectInfo EQU $0704
kOSASelectAvailableDialectCodeList EQU $0705
; Event Handling:
kOSASelectSetResumeDispatchProc EQU $0801
kOSASelectGetResumeDispatchProc EQU $0802
kOSASelectExecuteEvent EQU $0803
kOSASelectDoEvent EQU $0804
kOSASelectMakeContext EQU $0805
; scripting component specific selectors are added beginning with this value
kOSASelectComponentSpecificStart EQU $1001
;
; Mode Flags:
;
; Warning: These should not conflict with the AESend mode flags in
; AppleEvents.h, because we may want to use them as OSA mode flags too.
;
;
; This mode flag may be passed to OSALoad, OSAStore or OSACompile to
; instruct the scripting component to not retain the "source" of an
; expression. This will cause the OSAGetSource call to return the error
; errOSASourceNotAvailable if used. However, some scripting components
; may not retain the source anyway. This is mainly used when either space
; efficiency is desired, or a script is to be "locked" so that its
; implementation may not be viewed.
;
kOSAModePreventGetSource EQU $00000001
;
; These mode flags may be passed to OSACompile, OSAExecute, OSALoadExecute
; OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to
; indicate whether or not the script may interact with the user, switch
; layer or reconnect if necessary. Any AppleEvents will be sent with the
; corresponding AESend mode supplied.
;
kOSAModeNeverInteract EQU $00000010
kOSAModeCanInteract EQU $00000020
kOSAModeAlwaysInteract EQU $00000030
kOSAModeDontReconnect EQU $00000080
;
; This mode flag may be passed to OSACompile, OSAExecute, OSALoadExecute
; OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to
; indicate whether or not AppleEvents should be sent with the
; kAECanSwitchLayer mode flag sent or not. NOTE: This flag is exactly the
; opposite sense of the AppleEvent flag kAECanSwitchLayer. This is to
; provide a more convenient default, i.e. not supplying any mode
; (kOSAModeNull) means to send events with kAECanSwitchLayer. Supplying
; the kOSAModeCantSwitchLayer mode flag will cause AESend to be called
; without kAECanSwitchLayer.
;
kOSAModeCantSwitchLayer EQU $00000040
;
; This mode flag may be passed to OSACompile, OSAExecute, OSALoadExecute
; OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to
; indicate whether or not AppleEvents should be sent with the kAEDontRecord
; mode flag sent or not. NOTE: This flag is exactly the opposite sense of
; the AppleEvent flag kAEDontRecord. This is to provide a more convenient
; default, i.e. not supplying any mode (kOSAModeNull) means to send events
; with kAEDontRecord. Supplying the kOSAModeDoRecord mode flag will
; cause AESend to be called without kAEDontRecord.
;
kOSAModeDoRecord EQU $00001000
;
; This is a mode flag for OSACompile that indicates that a context should
; be created as the result of compilation. All handler definitions are
; inserted into the new context, and variables are initialized by
; evaluating their initial values in a null context (i.e. they must be
; constant expressions).
;
kOSAModeCompileIntoContext EQU $00000002
;
; This is a mode flag for OSACompile that indicates that the previous
; script ID (input to OSACompile) should be augmented with any new
; definitions in the sourceData rather than replaced with a new script.
; This means that the previous script ID must designate a context.
; The presence of this flag causes the kOSAModeCompileIntoContext flag
; to be implicitly used, causing any new definitions to be initialized
; in a null context.
;
kOSAModeAugmentContext EQU $00000004
;
; This mode flag may be passed to OSADisplay or OSADoScript to indicate
; that output only need be human-readable, not re-compilable by OSACompile.
; If used, output may be arbitrarily "beautified", e.g. quotes may be left
; off of string values, long lists may have elipses, etc.
;
kOSAModeDisplayForHumans EQU $00000008
;
; This mode flag may be passed to OSAStore in the case where the scriptID
; is a context. This causes the context to be saved, but not the context's
; parent context. When the stored context is loaded back in, the parent
; will be kOSANullScript.
;
kOSAModeDontStoreParent EQU $00010000
;
; This mode flag may be passed to OSAExecuteEvent to cause the event to
; be dispatched to the direct object of the event. The direct object (or
; subject attribute if the direct object is a non-object specifier) will
; be resolved, and the resulting script object will be the recipient of
; the message. The context argument to OSAExecuteEvent will serve as the
; root of the lookup/resolution process.
;
kOSAModeDispatchToDirectObject EQU $00020000
;
; This mode flag may be passed to OSAExecuteEvent to indicate that
; components do not have to get the data of object specifier arguments.
;
kOSAModeDontGetDataForArguments EQU $00040000
;
;*************************************************************************
; OSA Basic Scripting Interface
;**************************************************************************
; Scripting components must at least support the Basic Scripting interface.
;*************************************************************************
;
;
; Loading and Storing Scripts:
;
; These routines allow scripts to be loaded and stored in their internal
; (possibly compiled, non-text) representation.
;
; Resource type for scripts
kOSAScriptResourceType EQU 'scpt'
;
; Default type given to OSAStore which creates "generic" loadable script
; data descriptors.
;
typeOSAGenericStorage EQU 'scpt'
;
; pascal OSAError OSALoad(ComponentInstance scriptingComponent, const AEDesc *scriptData, long modeFlags, OSAID *resultingScriptID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSALoad
move.l #$000C0001,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSALoad
ENDIF
;
; OSAComponentFunctionInline(kOSASelectLoad, 12);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSABadStorageType: scriptData not for this scripting component
; errOSACorruptData: data seems to be corrupt
; errOSADataFormatObsolete script data format is no longer supported
; errOSADataFormatTooNew script data format is from a newer version
;
; ModeFlags:
; kOSAModePreventGetSource
;
;
; pascal OSAError OSAStore(ComponentInstance scriptingComponent, OSAID scriptID, DescType desiredType, long modeFlags, AEDesc *resultingScriptData)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAStore
move.l #$00100002,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAStore
ENDIF
;
; OSAComponentFunctionInline(kOSASelectStore, 16);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSABadStorageType: desiredType not for this scripting component
;
; ModeFlags:
; kOSAModePreventGetSource
; kOSAModeDontStoreParent
;
; Executing Scripts:
;
; pascal OSAError OSAExecute(ComponentInstance scriptingComponent, OSAID compiledScriptID, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAExecute
move.l #$00100003,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAExecute
ENDIF
;
; OSAComponentFunctionInline(kOSASelectExecute, 16);
; This call runs a script. The contextID represents the environment
; with which global variables in the script are resolved. The constant
; kOSANullScript may be used for the contextID if the application wishes
; to not deal with context directly (a default one is associated with each
; scripting component instance). The resultingScriptValueID is the
; result of evaluation, and contains a value which may be displayed using
; the OSAGetSource call. The modeFlags convey scripting component
; specific information.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSAScriptError: the executing script got an error
;
; ModeFlags:
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
; Displaying results:
;
; pascal OSAError OSADisplay(ComponentInstance scriptingComponent, OSAID scriptValueID, DescType desiredType, long modeFlags, AEDesc *resultingText)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSADisplay
move.l #$00100004,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSADisplay
ENDIF
;
; OSAComponentFunctionInline(kOSASelectDisplay, 16);
; This call is used to convert results (script value IDs) into displayable
; text. The desiredType should be at least typeChar, and modeFlags are
; scripting system specific flags to control the formatting of the
; resulting text. This call differs from OSAGetSource in that (1) it
; always produces at least typeChar, (2) is only works on script values,
; (3) it may display it's output in non-compilable form (e.g. without
; string quotes, elipses inserted in long and/or circular lists, etc.) and
; (4) it is required by the basic scripting interface.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errAECoercionFail: desiredType not supported by scripting component
;
; ModeFlags:
; kOSAModeDisplayForHumans
;
; Getting Error Information:
;
; pascal OSAError OSAScriptError(ComponentInstance scriptingComponent, OSType selector, DescType desiredType, AEDesc *resultingErrorDescription)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAScriptError
move.l #$000C0005,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAScriptError
ENDIF
;
; OSAComponentFunctionInline(kOSASelectScriptError, 12);
; Whenever script execution returns errOSAExecutionError, this routine
; may be used to get information about that error. The selector describes
; the type of information desired about the error (various selectors are
; listed below). The desiredType indicates the data type of the result
; desired for that selector.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSABadSelector: selector not supported by scripting component
; errAECoercionFail: desiredType not supported by scripting component
;
; OSAScriptError selectors:
;
; This selector is used to determine the error number of a script error.
; These error numbers may be either system error numbers, or error numbers
; that are scripting component specific.
; Required desiredTypes:
; typeShortInteger
;
kOSAErrorNumber EQU 'errn'
;
; This selector is used to determine the full error message associated
; with the error number. It should include the name of the application
; which caused the error, as well as the specific error that occurred.
; This selector is sufficient for simple error reporting (but see
; kOSAErrorBriefMessage, below).
; Required desiredTypes:
; typeChar error message string
;
kOSAErrorMessage EQU 'errs'
;
; This selector is used to determine a brief error message associated with
; the error number. This message and should not mention the name of the
; application which caused the error, any partial results or offending
; object (see kOSAErrorApp, kOSAErrorPartialResult and
; kOSAErrorOffendingObject, below).
; Required desiredTypes:
; typeChar brief error message string
;
; 0x65727262
kOSAErrorBriefMessage EQU 'errb'
;
; This selector is used to determine which application actually got the
; error (if it was the result of an AESend), or the current application
; if ....
; Required desiredTypes:
; typeProcessSerialNumber PSN of the errant application
; typeChar name of the errant application
;
; 0x65726170
kOSAErrorApp EQU 'erap'
;
; This selector is used to determine any partial result returned by an
; operation. If an AESend call failed, but a partial result was returned,
; then the partial result may be returned as an AEDesc.
; Required desiredTypes:
; typeBest AEDesc of any partial result
;
; 0x70746c72
kOSAErrorPartialResult EQU 'ptlr'
;
; This selector is used to determine any object which caused the error
; that may have been indicated by an application. The result is an
; AEDesc.
; Required desiredTypes:
; typeBest AEDesc of any offending object
;
; 0x65726f62
kOSAErrorOffendingObject EQU 'erob'
;
; This selector is used to determine the type expected by a coercion
; operation if a type error occurred.
;
; 0x65727274
kOSAErrorExpectedType EQU 'errt'
;
; This selector is used to determine the source text range (start and
; end positions) of where the error occurred.
; Required desiredTypes:
; typeOSAErrorRange
;
; 0x65726e67
kOSAErrorRange EQU 'erng'
;
; An AERecord type containing keyOSASourceStart and keyOSASourceEnd fields
; of type short.
;
; 0x65726e67
typeOSAErrorRange EQU 'erng'
; Field of a typeOSAErrorRange record of typeShortInteger
; 0x73726373
keyOSASourceStart EQU 'srcs'
; Field of a typeOSAErrorRange record of typeShortInteger
; 0x73726365
keyOSASourceEnd EQU 'srce'
; Disposing Script IDs:
;
; pascal OSAError OSADispose(ComponentInstance scriptingComponent, OSAID scriptID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSADispose
move.l #$00040006,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSADispose
ENDIF
;
; OSAComponentFunctionInline(kOSASelectDispose, 4);
; Disposes a script or context.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
;
; Getting and Setting Script Information:
;
; pascal OSAError OSASetScriptInfo(ComponentInstance scriptingComponent, OSAID scriptID, OSType selector, long value)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetScriptInfo
move.l #$000C0007,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetScriptInfo
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetScriptInfo, 12);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSABadSelector: selector not supported by scripting component
; or selector not for this scriptID
;
;
; pascal OSAError OSAGetScriptInfo(ComponentInstance scriptingComponent, OSAID scriptID, OSType selector, long *result)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetScriptInfo
move.l #$000C0008,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetScriptInfo
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetScriptInfo, 12);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSABadSelector: selector not supported by scripting component
; or selector not for this scriptID
;
;
; Manipulating the ActiveProc:
;
; Scripting systems will supply default values for these procedures if they
; are not set by the client:
;
;
; pascal OSAError OSASetActiveProc(ComponentInstance scriptingComponent, OSAActiveUPP activeProc, long refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetActiveProc
move.l #$00080009,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetActiveProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetActiveProc, 8);
; If activeProc is nil, the default activeProc is used.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSAGetActiveProc(ComponentInstance scriptingComponent, OSAActiveUPP *activeProc, long *refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetActiveProc
move.l #$0008000A,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetActiveProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetActiveProc, 8);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
;*************************************************************************
; OSA Optional Compiling Interface
;**************************************************************************
; Scripting components that support the Compiling interface have the
; kOSASupportsCompiling bit set in it's ComponentDescription.
;*************************************************************************
;
;
; pascal OSAError OSAScriptingComponentName(ComponentInstance scriptingComponent, AEDesc *resultingScriptingComponentName)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAScriptingComponentName
move.l #$00040102,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAScriptingComponentName
ENDIF
;
; OSAComponentFunctionInline(kOSASelectScriptingComponentName, 4);
; Given a scripting component, this routine returns the name of that
; scripting component in a type that is coercable to text (typeChar).
; The generic scripting component returns the name of the default
; scripting component. This name should be sufficient to convey to the
; user the kind of script (syntax) he is expected to write.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSACompile(ComponentInstance scriptingComponent, const AEDesc *sourceData, long modeFlags, OSAID *previousAndResultingScriptID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSACompile
move.l #$000C0103,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSACompile
ENDIF
;
; OSAComponentFunctionInline(kOSASelectCompile, 12);
; Coerces input desc (possibly text) into a script's internal format.
; Once compiled, the script is ready to run. The modeFlags convey
; scripting component specific information. The previous script ID
; (result parameter) is made to refer to the newly compiled script,
; unless it was originally kOSANullScript. In this case a new script
; ID is created and used.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errAECoercionFail: sourceData is not compilable
; errOSAScriptError: sourceData was a bad script (syntax error)
; errOSAInvalidID: previousAndResultingCompiledScriptID was not
; valid on input
;
; ModeFlags:
; kOSAModePreventGetSource
; kOSAModeCompileIntoContext
; kOSAModeAugmentContext
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
;
; pascal OSAError OSACopyID(ComponentInstance scriptingComponent, OSAID fromID, OSAID *toID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSACopyID
move.l #$00080104,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSACopyID
ENDIF
;
; OSAComponentFunctionInline(kOSASelectCopyID, 8);
; If toID is a reference to kOSANullScript then it is updated to have a
; new scriptID value. This call can be used to perform undo or revert
; operations on scripts.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
;
;
;*************************************************************************
; OSA Optional GetSource Interface
;**************************************************************************
; Scripting components that support the GetSource interface have the
; kOSASupportsGetSource bit set in it's ComponentDescription.
;*************************************************************************
;
;
; pascal OSAError OSAGetSource(ComponentInstance scriptingComponent, OSAID scriptID, DescType desiredType, AEDesc *resultingSourceData)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetSource
move.l #$000C0201,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetSource
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetSource, 12);
; This routine causes a compiled script to be output in a form (possibly
; text) such that it is suitable to be passed back to OSACompile.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSASourceNotAvailable can't get source for this scriptID
;
;
;*************************************************************************
; OSA Optional AECoercion Interface
;**************************************************************************
; Scripting components that support the AECoercion interface have the
; kOSASupportsAECoercion bit set in it's ComponentDescription.
;*************************************************************************
;
;
; pascal OSAError OSACoerceFromDesc(ComponentInstance scriptingComponent, const AEDesc *scriptData, long modeFlags, OSAID *resultingScriptID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSACoerceFromDesc
move.l #$000C0301,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSACoerceFromDesc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectCoerceFromDesc, 12);
; This routine causes script data to be coerced into a script value.
; If the scriptData is an AppleEvent, then the resultingScriptID is a
; compiled script ID (mode flags for OSACompile may be used in this case).
; Other scriptData descriptors create script value IDs.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
; ModeFlags:
; kOSAModePreventGetSource
; kOSAModeCompileIntoContext
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
;
; pascal OSAError OSACoerceToDesc(ComponentInstance scriptingComponent, OSAID scriptID, DescType desiredType, long modeFlags, AEDesc *result)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSACoerceToDesc
move.l #$00100302,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSACoerceToDesc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectCoerceToDesc, 16);
; This routine causes a script value to be coerced into any desired form.
; If the scriptID denotes a compiled script, then it may be coerced to
; typeAppleEvent.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
;
;
;*************************************************************************
; OSA Optional AESending Interface
;**************************************************************************
; Scripting components that support the AESending interface have the
; kOSASupportsAESending bit set in it's ComponentDescription.
;*************************************************************************
;
;
; Scripting systems will supply default values for these procedures if they
; are not set by the client:
;
;
; pascal OSAError OSASetSendProc(ComponentInstance scriptingComponent, OSASendUPP sendProc, long refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetSendProc
move.l #$00080401,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetSendProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetSendProc, 8);
; If sendProc is nil, the default sendProc is used.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSAGetSendProc(ComponentInstance scriptingComponent, OSASendUPP *sendProc, long *refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetSendProc
move.l #$00080402,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetSendProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetSendProc, 8);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSASetCreateProc(ComponentInstance scriptingComponent, OSACreateAppleEventUPP createProc, long refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetCreateProc
move.l #$00080403,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetCreateProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetCreateProc, 8);
; If createProc is nil, the default createProc is used.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSAGetCreateProc(ComponentInstance scriptingComponent, OSACreateAppleEventUPP *createProc, long *refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetCreateProc
move.l #$00080404,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetCreateProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetCreateProc, 8);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSASetDefaultTarget(ComponentInstance scriptingComponent, const AEAddressDesc *target)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetDefaultTarget
move.l #$00040405,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetDefaultTarget
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetDefaultTarget, 4);
; This routine sets the default target application for AE sending.
; It also establishes the default target from which terminologies come.
; It is effectively like having an AppleScript "tell" statement around
; the entire program. If this routine is not called, or if the target
; is a null AEDesc, then the current application is the default target.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
;*************************************************************************
; OSA Optional Recording Interface
;**************************************************************************
; Scripting components that support the Recording interface have the
; kOSASupportsRecording bit set in it's ComponentDescription.
;*************************************************************************
;
;
; pascal OSAError OSAStartRecording(ComponentInstance scriptingComponent, OSAID *compiledScriptToModifyID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAStartRecording
move.l #$00040501,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAStartRecording
ENDIF
;
; OSAComponentFunctionInline(kOSASelectStartRecording, 4);
; Starts recording. If compiledScriptToModifyID is kOSANullScript, a
; new script ID is created and returned. If the current application has
; a handler for the kOSARecordedText event, then kOSARecordedText events
; are sent to the application containing the text of each AppleEvent
; recorded.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSARecordingIsAlreadyOn
;
;
; pascal OSAError OSAStopRecording(ComponentInstance scriptingComponent, OSAID compiledScriptID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAStopRecording
move.l #$00040502,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAStopRecording
ENDIF
;
; OSAComponentFunctionInline(kOSASelectStopRecording, 4);
; If compiledScriptID is not being recorded into or recording is not
; currently on, no error is returned.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
;
;
;*************************************************************************
; OSA Optional Convenience Interface
;**************************************************************************
; Scripting components that support the Convenience interface have the
; kOSASupportsConvenience bit set in it's ComponentDescription.
;*************************************************************************
;
;
; pascal OSAError OSALoadExecute(ComponentInstance scriptingComponent, const AEDesc *scriptData, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSALoadExecute
move.l #$00100601,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSALoadExecute
ENDIF
;
; OSAComponentFunctionInline(kOSASelectLoadExecute, 16);
; This routine is effectively equivalent to calling OSALoad followed by
; OSAExecute. After execution, the compiled source is disposed. Only the
; resulting value ID is retained.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSABadStorageType: scriptData not for this scripting component
; errOSACorruptData: data seems to be corrupt
; errOSADataFormatObsolete script data format is no longer supported
; errOSADataFormatTooNew script data format is from a newer version
; errOSAInvalidID
; errOSAScriptError: the executing script got an error
;
; ModeFlags:
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
;
; pascal OSAError OSACompileExecute(ComponentInstance scriptingComponent, const AEDesc *sourceData, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSACompileExecute
move.l #$00100602,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSACompileExecute
ENDIF
;
; OSAComponentFunctionInline(kOSASelectCompileExecute, 16);
; This routine is effectively equivalent to calling OSACompile followed by
; OSAExecute. After execution, the compiled source is disposed. Only the
; resulting value ID is retained.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errAECoercionFail: sourceData is not compilable
; errOSAScriptError: sourceData was a bad script (syntax error)
; errOSAInvalidID: previousAndResultingCompiledScriptID was not
; valid on input
; errOSAScriptError: the executing script got an error
;
; ModeFlags:
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
;
; pascal OSAError OSADoScript(ComponentInstance scriptingComponent, const AEDesc *sourceData, OSAID contextID, DescType desiredType, long modeFlags, AEDesc *resultingText)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSADoScript
move.l #$00140603,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSADoScript
ENDIF
;
; OSAComponentFunctionInline(kOSASelectDoScript, 20);
; This routine is effectively equivalent to calling OSACompile followed by
; OSAExecute and then OSADisplay. After execution, the compiled source
; and the resulting value are is disposed. Only the resultingText
; descriptor is retained. If a script error occur during processing, the
; resultingText gets the error message of the error, and errOSAScriptError
; is returned. OSAScriptError may still be used to extract more
; information about the particular error.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errAECoercionFail: sourceData is not compilable or
; desiredType not supported by scripting component
; errOSAScriptError: sourceData was a bad script (syntax error)
; errOSAInvalidID: previousAndResultingCompiledScriptID was not
; valid on input
; errOSAScriptError: the executing script got an error
;
; ModeFlags:
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
; kOSAModeDisplayForHumans
;
;
;*************************************************************************
; OSA Optional Dialects Interface
;**************************************************************************
; Scripting components that support the Dialects interface have the
; kOSASupportsDialects bit set in it's ComponentDescription.
;*************************************************************************
;
;
; These calls allows an scripting component that supports different dialects
; to dynamically switch between those dialects. Although this interface is
; specified, the particular dialect codes are scripting component dependent.
;
;
; pascal OSAError OSASetCurrentDialect(ComponentInstance scriptingComponent, short dialectCode)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetCurrentDialect
move.l #$00020701,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetCurrentDialect
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetCurrentDialect, 2);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSANoSuchDialect: invalid dialectCode
;
;
; pascal OSAError OSAGetCurrentDialect(ComponentInstance scriptingComponent, short *resultingDialectCode)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetCurrentDialect
move.l #$00040702,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetCurrentDialect
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetCurrentDialect, 4);
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSAAvailableDialects(ComponentInstance scriptingComponent, AEDesc *resultingDialectInfoList)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAAvailableDialects
move.l #$00040703,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAAvailableDialects
ENDIF
;
; OSAComponentFunctionInline(kOSASelectAvailableDialects, 4);
; This call return an AEList containing information about each of the
; currently available dialects of a scripting component. Each item
; is an AERecord of typeOSADialectInfo that contains at least the fields
; keyOSADialectName, keyOSADialectCode, KeyOSADialectLangCode and
; keyOSADialectScriptCode.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSAGetDialectInfo(ComponentInstance scriptingComponent, short dialectCode, OSType selector, AEDesc *resultingDialectInfo)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetDialectInfo
move.l #$000A0704,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetDialectInfo
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetDialectInfo, 10);
; This call gives information about the specified dialect of a scripting
; component. It returns an AEDesc whose type depends on the selector
; specified. Available selectors are the same as the field keys for a
; dialect info record. The type of AEDesc returned is the same as the
; type of the field that has same key as the selector.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSABadSelector
; errOSANoSuchDialect: invalid dialectCode
;
;
; pascal OSAError OSAAvailableDialectCodeList(ComponentInstance scriptingComponent, AEDesc *resultingDialectCodeList)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAAvailableDialectCodeList
move.l #$00040705,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAAvailableDialectCodeList
ENDIF
;
; OSAComponentFunctionInline(kOSASelectAvailableDialectCodeList, 4);
; This is alternative to OSAGetAvailableDialectCodeList. Use this call
; and OSAGetDialectInfo to get information on dialects.
; This call return an AEList containing dialect code for each of the
; currently available dialects of a scripting component. Each dialect
; code is a short integer of type typeShortInteger.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
; Type of a dialect info record containing at least keyOSADialectName
; and keyOSADialectCode fields.
;
; keys for dialect info record, also used as selectors to OSAGetDialectInfo.
;
; Field of a typeOSADialectInfo record of typeChar.
; Field of a typeOSADialectInfo record of typeShortInteger.
; Field of a typeOSADialectInfo record of typeShortInteger.
; Field of a typeOSADialectInfo record of typeShortInteger.
;
;
;*************************************************************************
; OSA Optional Event Handling Interface
;**************************************************************************
; Scripting components that support the Event Handling interface have the
; kOSASupportsEventHandling bit set in it's ComponentDescription.
;*************************************************************************
;
;
; pascal OSAError OSASetResumeDispatchProc(ComponentInstance scriptingComponent, AEEventHandlerUPP resumeDispatchProc, long refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSASetResumeDispatchProc
move.l #$00080801,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSASetResumeDispatchProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectSetResumeDispatchProc, 8);
; This function is used to set the ResumeDispatchProc that will be used
; by OSAExecuteEvent and OSADoEvent if either no event handler can be
; found in the context, or the context event hander "continues" control
; onward. The two constants kOSAUseStandardDispatch and kOSANoDispatch
; may also be passed to this routine indicating that the handler registered
; in the application with AEInstallEventHandler should be used, or no
; dispatch should occur, respectively.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
kOSAUseStandardDispatch EQU $FFFFFFFF
;
; Special ResumeDispatchProc constant which may be passed to
; OSASetResumeDispatchProc indicating that the handler registered
; in the application with AEInstallEventHandler should be used.
;
; NOTE: Had to remove the cast (AEEventHandlerUPP). The C compiler
; doesn't allow pointer types to be assigned to an enum. All
; constants must be assigned as enums to translate properly to
; Pascal.
;
kOSANoDispatch EQU 0
;
; Special ResumeDispatchProc constant which may be passed to
; OSASetResumeDispatchProc indicating that no dispatch should occur.
;
; NOTE: Had to remove the cast (AEEventHandlerUPP). The C compiler
; doesn't allow pointer types to be assigned to an enum. All
; constants must be assigned as enums to translate properly to
; Pascal.
;
kOSADontUsePhac EQU $0001
;
; Special refCon constant that may be given to OSASetResumeDispatchProc
; only when kOSAUseStandardDispatch is used as the ResumeDispatchProc.
; This causes the standard dispatch to be performed, except the phac
; handler is not called. This is useful during tinkerability, when
; the phac handler is used to lookup a context associated with an event's
; direct parameter, and call OSAExecuteEvent or OSADoEvent. Failure to
; bypass the phac handler would result in an infinite loop.
;
;
; pascal OSAError OSAGetResumeDispatchProc(ComponentInstance scriptingComponent, AEEventHandlerUPP *resumeDispatchProc, long *refCon)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAGetResumeDispatchProc
move.l #$00080802,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAGetResumeDispatchProc
ENDIF
;
; OSAComponentFunctionInline(kOSASelectGetResumeDispatchProc, 8);
; Returns the registered ResumeDispatchProc. If no ResumeDispatchProc has
; been registered, then kOSAUseStandardDispatch (the default) is returned.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
;
;
; pascal OSAError OSAExecuteEvent(ComponentInstance scriptingComponent, const AppleEvent *theAppleEvent, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAExecuteEvent
move.l #$00100803,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAExecuteEvent
ENDIF
;
; OSAComponentFunctionInline(kOSASelectExecuteEvent, 16);
; This call is similar to OSAExecute except the initial command to
; execute comes in the form of an AppleEvent. If the contextID
; defines any event handlers for that event, they are used to process
; the event. If no event handler can be found in the context
; errAEEventNotHandled is returned. If an event handler is found and
; the hander "continues" control onward, the ResumeDispatchProc
; (registered with OSASetResumeDispatchProc, above) is called given the
; AppleEvent. The result is returned as a scriptValueID.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errOSAScriptError: the executing script got an error
; errAEEventNotHandled: no handler for event in contextID
;
; ModeFlags:
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
;
; pascal OSAError OSADoEvent(ComponentInstance scriptingComponent, const AppleEvent *theAppleEvent, OSAID contextID, long modeFlags, AppleEvent *reply)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSADoEvent
move.l #$00100804,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSADoEvent
ENDIF
;
; OSAComponentFunctionInline(kOSASelectDoEvent, 16);
; This call is similar to OSADoScript except the initial command to
; execute comes in the form of an AppleEvent, and the result is an
; AppleEvent reply record. If the contextID defines any event handlers
; for that event, they are used to process the event. If no event handler
; can be found in the context errAEEventNotHandled is returned. If an
; event handler is found and the hander "continues" control onward, the
; ResumeDispatchProc (registered with OSASetResumeDispatchProc, above) is
; called given the AppleEvent. The result is returned in the form of an
; AppleEvent reply descriptor. If at any time the script gets an error, or
; if the ResumeDispatchProc returns a reply event indicating an error,
; then the OSADoEvent call itself returns an error reply (i.e. OSADoEvent
; should never return errOSAScriptError). Any error result returned by
; the ResumeDispatchProc will be returned by OSADoEvent.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errAEEventNotHandled: no handler for event in contextID
;
; ModeFlags:
; kOSAModeNeverInteract
; kOSAModeCanInteract
; kOSAModeAlwaysInteract
; kOSAModeCantSwitchLayer
; kOSAModeDontReconnect
; kOSAModeDoRecord
;
;
; pascal OSAError OSAMakeContext(ComponentInstance scriptingComponent, const AEDesc *contextName, OSAID parentContext, OSAID *resultingContextID)
;
IF ¨ GENERATINGCFM THEN
Macro
_OSAMakeContext
move.l #$000C0805,-(sp)
moveq #0,D0
dc.w $A82A
EndM
ELSE
IMPORT_CFM_FUNCTION OSAMakeContext
ENDIF
;
; OSAComponentFunctionInline(kOSASelectMakeContext, 12);
; Makes a new empty context which may be passed to OSAExecute or
; OSAExecuteEvent. If contextName is typeNull, an unnamed context is
; created. If parentContext is kOSANullScript then the resulting context
; does not inherit bindings from any other context.
;
; Errors:
; badComponentInstance invalid scripting component instance
; errOSASystemError
; errOSAInvalidID
; errAECoercionFail: contextName is invalid
;
ENDIF
ENDIF ; __OSA__